<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    

    <script>
        // let 语法
       // 一、let第一个特性：
            // var 声明的变量往往会越域
            // let 声明的变量有严格局部作用域 
            //         {
            //             var a = 1;
            //             let b = 2;
            //         }
            //         console.log(a);  // 1    (看控制台可以打印出来)
            //         console.log(b);  // ReferenceError: b is not defined(控制台不可以打印，let声明的变量不会越域)


        // 二、 var 可以声明多次
            // let 只能声明一次
            //         var m = 1
            //         var m = 2    （var可以声明多次，不会报错）
            //         let n = 3
            //         let n = 4、
            //         console.log(m)  // 2
            //         console.log(n)  // Identifier 'n' has already been declared


        // 三、 var 会变量提升
        // let 不存在变量提升
        //         console.log(x);  // undefined
        //         var x = 10;
        //         console.log(y);   //ReferenceError: y is not defined
        //         let y = 20;

        // let
        // 1. 声明之后不允许改变
                // 2. 一但声明必须初始化，否则会报错
        const a = 1;
        a = 3; //Uncaught TypeError: Assignment to constant variable.
    
    </script>

</body>
</html>